Pattern based video frame navigation aid

ABSTRACT

Recommending and graphically displaying viewed video data sensitive to the viewing pattern of a user. Responsive to viewing a plurality of video frames of a video file, a navigation profile is captured to document the viewing pattern of the video frames. Specifically, attributes of the video frames are documented such as the frequency of plays of the video frames. Where multiple navigation profiles are captured, the navigation profiles are stored, aggregated, and represented graphically on a display. Additional video may be recommended based on the aggregated data.

CROSS REFERENCE TO RELATED APPLICATION(S)

This application is a continuation patent application claiming thebenefit of the filing date of U.S. patent application Ser. No.14/068,323, filed on Oct. 31, 2013, and titled “Pattern Based VideoFrame Navigation Aid”, now pending, which is a continuation of U.S.patent application Ser. No. 13/921,803, filed on Jun. 19, 2013, andtitled “Pattern Based Video Frame Navigation Aid” now abandoned, bothwhich are hereby incorporated by reference.

BACKGROUND

Technical Field

The present invention relates generally to capturing data associatedwith an access file. More specifically, the invention relates todetecting a pattern of the accessed file, and capturing the pattern inthe form of a navigation profile.

Background

With the development of technology and electronic storage devices, datain various forms is generally stored in some form of an electronicstorage device. Examples of such data include image data, such as stillimages and video. Data pertaining to viewing of such files may betracked and/or recorded. In one embodiment, the captured data can beused to determine the popularity of the file, demographics associatedwith viewers of the file, and/or recommendations to viewers for viewingthe file.

Data files however, are not always viewed in their entirety. Forexample, a video file may be watched non-continuously and selectsegments of the file may be skipped while other segments may be viewedmore than one time. Accordingly, there is a macroscopic manner intracking file access, and there is a microscopic manner of ascertainingfile access on a segment basis.

SUMMARY OF THE INVENTION

This invention comprises a system and computer program product forcapturing a navigation profile of a viewed data file and use of thecaptured profile.

The system and computer program product provide for navigating throughpatterns of a viewed data file. First and second sets of data,respectively corresponding to first and second viewed portions of thedata file, are captured. Similarly, first and second navigation profilesare formed from the first and second sets of data. The navigationprofiles are storage and aggregated, and a combined viewing pattern isidentified. A portion of the data file is recommended for a secondviewing based on the combined viewing pattern. The recommended portionis presented on a visual display that supports gestural navigation.

Other features and advantages of this invention will become apparentfrom the following detailed description of the presently preferredembodiment of the invention, taken in conjunction with the accompanyingdrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawings referenced herein form a part of the specification.Features shown in the drawings are meant as illustrative of only someembodiments of the invention, and not of all embodiments of theinvention unless otherwise explicitly indicated. Implications to thecontrary are otherwise not to be made.

FIG. 1 is a flow chart illustrating a method for creating a navigationprofile for viewed data file.

FIG. 2 is a flow chart illustrating a method for graphicallyrepresenting the navigation profile(s).

FIG. 3 is a flow chart illustrating a method for autonomous data filerecommendation.

FIG. 4A and 4B are block diagrams illustrating examples of graphicalrepresentations of viewed files and associated captured view patterns.

FIG. 5 depicts a block diagram illustrating a system for automated datafile recommendation.

FIG. 6 depicts a block diagram showing a system for implementing anembodiment of the present invention.

DETAILED DESCRIPTION

It will be readily understood that the components of the presentinvention, as generally described and illustrated in the Figures herein,may be arranged and designed in a wide variety of differentconfigurations. Thus, the following detailed description of theembodiments of the apparatus, system, and method of the presentinvention, as presented in the Figures, is not intended to limit thescope of the invention, as claimed, but is merely representative ofselected embodiments of the invention.

The functional unit described in this specification has been labeledwith tools, modules, and/or managers. The functional unit may beimplemented in programmable hardware devices such as field programmablegate arrays, programmable array logic, programmable logic devices, orthe like. The functional unit may also be implemented in software forexecution by various types of processors. An identified functional unitof executable code may, for instance, comprise one or more physical orlogical blocks of computer instructions which may, for instance, beorganized as an object, procedure, function, or other construct.Nevertheless, the executable of an identified functional unit need notbe physically located together, but may comprise disparate instructionsstored in different locations which, when joined logically together,comprise the functional unit and achieve the stated purpose of thefunctional unit.

Indeed, a functional unit of executable code could be a singleinstruction, or many instructions, and may even be distributed overseveral different code segments, among different applications, andacross several memory devices. Similarly, operational data may beidentified and illustrated herein within the functional unit, and may beembodied in any suitable form and organized within any suitable type ofdata structure. The operational data may be collected as a single dataset, or may be distributed over different locations including overdifferent storage devices, and may exist, at least partially, aselectronic signals on a system or network.

Reference throughout this specification to “a select embodiment,” “oneembodiment,” or “an embodiment” means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment of the present invention. Thus,appearances of the phrases “a select embodiment,” “in one embodiment,”or “in an embodiment” in various places throughout this specificationare not necessarily referring to the same embodiment.

Furthermore, the described features, structures, or characteristics maybe combined in any suitable manner in one or more embodiments. In thefollowing description, numerous specific details are provided, such asexamples of managers, to provide a thorough understanding of embodimentsof the invention. One skilled in the relevant art will recognize,however, that the invention can be practiced without one or more of thespecific details, or with other methods, components, materials, etc. Inother instances, well-known structures, materials, or operations are notshown or described in detail to avoid obscuring aspects of theinvention.

The illustrated embodiments of the invention will be best understood byreference to the drawings, wherein like parts are designated by likenumerals throughout. The following description is intended only by wayof example, and simply illustrates certain selected embodiments ofdevices, systems, and processes that are consistent with the inventionas claimed herein.

In the following description of the embodiments, reference is made tothe accompanying drawings that form a part hereof, and which shows byway of illustration the specific embodiment in which the invention maybe practiced. It is to be understood that other embodiments may beutilized because structural changes may be made without departing fromthe scope of the present invention.

Data files come in different forms, including but not limited to animage format and a video format. Regardless of the format, the file iscomprised of an aggregation of data. When the file is opened orotherwise accessed, different sections of the data aggregation may beselected and/or viewed. To determine detailed aspects of an accessedfile, a navigation profile is created based on a summary of datapertaining accessed portions of the file. FIG. 1 is a flow chart (100)illustrating a method for creating the profile. A file is selected (102)and a counting variable X is initialized (104). The counting variablerepresents portions of the file. In one embodiment, portions may includebut are not limited to segments, bytes, bits, ranges, etc. In oneembodiment, the file is a video file and the counting variable pertainsto individual frames that comprise the video. The variable X_(total) isassigned to the total number of portions in the selected file (106). Forease of description, the file being described is a video file and theindividual portions are individual frames of the video file. One or moreattributes associated with a selected frame, frame_(X), are captured(108). These attributes may include whether frame_(x) was subject toviewing or omitted from viewing. In one embodiment, frame_(x) has anaudio attribute capturing the decibel level in which frame_(x) wasviewed. Similarly, in one embodiment, frame_(x) has a speed attributecapturing the speed in which select frames were viewed. Accordingly, foreach selected frame of the file, attribute data associated with theselection is collected.

A pattern associated with the collected attribute data may be formedfrom one or more selections of the file. Following the selected accessof a data file, any pattern(s) associated with the captured attributesare identified (110). Examples of such patterns include, but are notlimited to, a collection of selected portions having the greatest numberof accesses or least number of accesses, and a collection of selectedportions that were viewed at an increased viewing speed and/or volumeetc. Following the capturing of attributes at step (108) and the patternidentification at step (110), the counting variable X is incremented(112). It is then determined if all of the portions of the selected filehave been assessed (114). A negative response to the determination atstep (114) is followed by a return to step (108). Conversely, a positiveresponse to the determination at step (114) is following by evaluatingthe captured data. More specifically, the patterns are compiled into anavigation profile (116); the profile is a collection of the acquiredattributes of the individual frames of the file. The navigationprofile(s) is stored in an electronic storage device (118). Accordingly,individual frames of a video are separately assessed for attributes, andthe collected attributes are summarized in a navigation profileidentifying any associated attribute patterns.

The attributes of individual frames in the data file are compiled into anavigation profile as described in FIG. 1. FIG. 2 is a flow chart (200)illustrating a method for representing the navigation profile for aselect file. The navigation profile is an aggregation of one or morefile accesses and frame selections. In one embodiment, multipleselections are compiled into a single navigation profile. Similarly, inone embodiment, the navigation profile is unique to a viewing pattern ofa user, and the compilation of multiple navigation profiles is a joiningof the viewing patterns of various users into a single combined view. Inone embodiment, multiple navigation profiles are compiled such that theattribute data of two or more viewing navigation profiles are aggregatedinto a single presentation (202). The aggregated data is organized forpresentation (204). Examples of the presentation include, but are notlimited to, a histogram, a bar graph, and a line graph. Accordingly,file access and frame selections are aggregated and graphicallyrepresented in a compilation to form a navigation profile.

The amount of information presented by the navigation profiles may betoo great to reasonably represent graphically on a single display.Therefore, identified patterns within the graphical display may belimited to select portions of the data to support ease of navigation.For example, the graphical representation may display the dataassociated with every frame of the video, or only a select portion ofthe frames. In one embodiment, the navigation profile is available onvisual display and includes an interactive mode wherein a portion ofdata represented in the profile may be selected in response to agesture, such as in a finger gesture or a stylus on a touch sensitivedisplay (206). In one embodiment, a select portion of the displayed datamay be expanded with the gesture. In one embodiment, the magnitude ofexpansion is proportional to the distance of movement created by thegesture. In another embodiment, gesture(s) may be used to navigatebetween selected portions of displayed data, or between specificattributes associated with the frames. For example, a gesture may beused to navigate between a graphical representation of volume withrespect to a frame number and a graphical representation of the quantityof frames viewed with respect to a frame number. Accordingly, on agraphical display, the navigation profiles can be effectively displayedand manipulated through selected portions.

Navigation profiles are generated and stored sensitive to a viewingpattern as described in FIG. 1. With these navigation profiles, a filecan be autonomously recommended based on previous navigation of theprofiles. FIG. 3 is a flow chart (300) illustrating a method forautonomous recommendation of one or more files. Activity associated witha file is tracked and compiled into a navigation profile (302), andpatterns are identified from the compiled navigation profiles (304).Recommendations are determined based on the identified patterns (306),followed by communicating the recommendation of one or more portions ofthe data file (308). For example, a prior pattern assessment may yieldrecommendation of select frames for viewing. In one embodiment, wherethe data file is a video, if identified patterns show a high view ratefor action scenes in the video, videos with action scenes may berecommended or portions of the video containing action scenes may berecommended. In one embodiment, recommendations may employcharacteristics of a profile. For example, file portions containinghighly viewed frames may be recommended from navigation profiles ofother users who share a similar profile characteristic. Accordingly,data files are recommended based on various qualifiers, includingacquired viewing patterns sensitive to frame rates and their associatedattributes.

As shown and described in FIG. 2, the navigation profiles aregraphically represented, and in one embodiment, may be manipulated forframe selection. FIGS. 4A and 4B are two examples of these graphicalrepresentations. FIG. 4A is a line graph (400) representing the numberof views for a frame (402) with respect to a frame number (404). Whilethis example depicts the views for a frame with respect to frame number,various other attributes may be plotted on the line graph in addition toor instead of frame views. For example, volume level or viewing rate maybe plotted attributes. Additionally, and as described above, portions ofthe data may be expanded. For example, the portion containing frames700-1,000 (406) and the portion containing frames 1,200-1,300 (408) mayfor instance be of particular interest due to the exceptionally highviews of each frame in those portions. Those areas may therefore beexpanded to be viewed in greater detail through the various methods asdescribed in FIG. 2. Accordingly, attributes compiled by frame numberare displayed on a line graph for viewing and navigation.

FIG. 4B is a histogram (410) depicting an alternative layout fordisplaying the data as shown in FIG. 4A. In this example, the histogram(410) summarizes the data of FIG. 4A by grouping frame numbers betweenvarious ranges to depict data spikes. For example, the data spikebetween frames 700-1,000 (406) and frames 1,200-1,300 (408) are depictedin histogram bars (412) and (416), respectively. While FIGS. 4A and 4Bdepict a line graph (400) and a histogram (410) respectively, variousother graphical forms may be implemented for data depiction.Accordingly, data may be graphically displayed in different formats foridentification of trends among various attributes.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware based embodiment, an entirely software basedembodiment (including firmware, resident software, micro-code, etc.) oran embodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wire line, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described above with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described above with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

The processes shown in FIGS. 1-3 and supported in FIGS. 4 and 5 may beembodied as hardware components. FIG. 5 is a system (500) for creating anavigation profile, displaying the navigation profile, and tools tosupport manipulation of the data through the graphical representation. Acomputer (502) is shown in communication with data storage (520), withthe storage containing one or more navigation profile(s) (522). Thecomputer has a processing unit (504) in communication with memory (508)across a bus (506). The computer (502) may further be in communicationwith any number of compute nodes across a network (505). In thisinstance, computer (502) is in communication with node₀ (530) and node₁(540), both in communication with local data storage, (532) and (542)respectively. The computer (502) is in communication with a visualdisplay (580). In addition, computer (502) includes a functional unit(510) having tools embedded therewith. The tools include but are notlimited to, a profile manager (512), a storage manager (514), and arecommendation manager (516). In one embodiment, a graphics manager(518) is also provided as one of the tools supported by the functionalunit (510).

The profile manager (512) functions to capture a navigation profile(522) of a viewed file. The navigation profile (522), which is acollection of data with information regarding various attributes ofviewed frames, portrays or is compiled to portray a viewing pattern ofthe data file. An example of such an attribute includes whether a framehas been subject to viewing or omitted from viewing. The navigationprofile (522) may be a collection of data from a single viewing ormultiple viewings of the file. Once captured, the navigation profile(522) is stored in data storage (520) by a storage manager (514) incommunication with the profile manager (512). The navigation profile maybe stored locally in data storage (520) or in remote data storage (notshown) across a network (505). In one embodiment, the storage manager(514) aggregates a plurality of stored navigation profiles (522) for oneor more accessed or viewed files. Accordingly, the profile manager (512)captures any number of navigation profiles (522) which are subsequentlystored by the storage manager (514).

The recommendation manager (516) is provided in communication with thestorage manager (514). The recommendation manager (516) functions tosupport selection of a portion of the data file for a second viewingbased on the one or more captured and stored navigation profile(s)(522). Where multiple navigation profiles (522) are aggregated instorage, the recommendation manager (516) recommends one or more framesor selected portions within the file for viewing based on theaggregation. In one embodiment, a graphics manager (518) is furtherprovided to graphically represent the aggregated profiles (522). In oneembodiment, the graphics manager (518) displays a graphicalrepresentation that captures a frequency of frames viewed in a data filebased upon the aggregation of captured profiles. The graphics manger(518), as described in further detail in FIG. 2, may display all or onlya portion of the aggregated data. Where only a portion of the navigationprofiles (522) are displayed, a gesture may be used for selection of aframe within the file. A gesture may also be implemented to expand aportion of viewable area of the graphical representation, or to movebetween select portions of the file as reflected in the graphicalrepresentation(s). Accordingly, the recommendation manager (516)functions to recommend a portion of the file for a second viewing basedon the navigation profile(s) (522), and where more than one navigationprofile exists, the navigation profiles are graphically represented bythe graphics manager (518).

As shown and described above, the recommendation manager (516) assessselect portions of a file based on a navigation profile (522). In oneembodiment, the navigation profile (522) employs characteristics ofusers of the file. More specifically, the navigation profile (522)gathers and maintains characteristics of users, such as likes anddislikes. The recommendation manager (516) may recommend one or moreportions of the file based on common characteristics of a current userand a prior user. In one embodiment, the recommendation manager (516)provides a recommendation on a combination of the navigation profile(522) and the common characteristics among users of the file.Accordingly, the recommendation manager (516) may employ variouscharacteristics associated with the file as a basis for therecommendation.

As identified above, the profile manager (512), storage manager (514),recommendation manager (516), and graphics manager (518), are shownresiding in the functional unit (510). Although in one embodiment, thefunctional unit (510) and managers (512)-(518) may reside as hardwaretools external to the memory (508). In another embodiment, the managers(512)-(518) may be implemented as a combination of hardware and softwareresources. Similarly, in one embodiment, the managers (512)-(518) may becombined into a single functional item that incorporates thefunctionality of the separate items. As shown herein, each of themanager(s) (512)-(518) are shown local to one client (502), e.g. computenode. However, in one embodiment they may be collectively orindividually distributed across a shared pool of configurable computerresources and function as a unit to enable pattern detection to supportone or more recommendations. Accordingly, managers may be implemented assoftware tools, hardware tools, or a combination of software andhardware tools.

Furthermore, the described features, structures, or characteristics maybe combined in any suitable manner in one or more embodiments. Examplesof the managers have been provided to lend a thorough understanding ofembodiments of the invention. One skilled in the relevant art willrecognize, however, that the invention can be practiced without one ormore of the specific details, or with other methods, components,materials, etc. In other instances, well-known structures, materials, oroperations are not shown or described in detail to avoid obscuringaspects of the invention.

The functional unit described above in FIG. 5 has been labeled withmanagers. The managers may be implemented in programmable hardwaredevices such as field programmable gate arrays, programmable arraylogic, programmable logic devices, or the like. The manager(s) may alsobe implemented in software for processing by various types ofprocessors. An identified manager of executable code may, for instance,comprise one or more physical or logical blocks of computer instructionswhich may, for instance, be organized as an object, procedure, function,or other construct. Nevertheless, the executable of an identifiedmanager need not be physically located together, but may comprisedisparate instructions stored in different locations which, when joinedlogically together, comprise the managers and achieve the stated purposeof the managers.

Indeed, a manager of executable code could be a single instruction, ormany instructions, and may even be distributed over several differentcode segments, among different applications, and across several memorydevices. Similarly, operational data may be identified and illustratedherein within the manager, and may be embodied in any suitable form andorganized within any suitable type of data structure. The operationaldata may be collected as a single data set, or may be distributed overdifferent locations including over different storage devices, and mayexist, at least partially, as electronic signals on a system or network.

Referring now to the block diagram (600) of FIG. 6, additional detailsare now described with respect to implementing an embodiment of thepresent invention. The computer system includes one or more processors,such as a processor (602). The processor (602) is connected to acommunication infrastructure (604) (e.g., a communications bus,cross-over bar, or network).

The computer system can include a display interface (606) that forwardsgraphics, text, and other data from the communication infrastructure(604) (or from a frame buffer not shown) for display on a display unit(608). The computer system also includes a main memory (610), preferablyrandom access memory (RAM), and may also include a secondary memory(612). The secondary memory (612) may include, for example, a hard diskdrive (614) (or alternative persistent storage device) and/or aremovable storage drive (616), representing, for example, a floppy diskdrive, a magnetic tape drive, or an optical disk drive. The removablestorage drive (616) reads from and/or writes to a removable storage unit(618) in a manner well known to those having ordinary skill in the art.Removable storage unit (618) represents, for example, a floppy disk, acompact disc, a magnetic tape, or an optical disk, etc., which is readby and written to by a removable storage drive (616). As will beappreciated, the removable storage unit (618) includes a computerreadable medium having stored therein computer software and/or data.

In alternative embodiments, the secondary memory (612) may include othersimilar means for allowing computer programs or other instructions to beloaded into the computer system. Such means may include, for example, aremovable storage unit (620) and an interface (622). Examples of suchmeans may include a program package and package interface (such as thatfound in video game devices), a removable memory chip (such as an EPROM,or PROM) and associated socket, and other removable storage units (620)and interfaces (622) which allow software and data to be transferredfrom the removable storage unit (620) to the computer system.

The computer system may also include a communications interface (624).Communications interface (624) allows software and data to betransferred between the computer system and external devices. Examplesof communications interface (624) may include a modem, a networkinterface (such as an Ethernet card), a communications port, or a PCMCIAslot and card, etc. Software and data transferred via communicationsinterface (624) are in the form of signals which may be, for example,electronic, electromagnetic, optical, or other signals capable of beingreceived by communications interface (624). These signals are providedto communications interface (624) via a communications path (i.e.,channel) (626). This communications path (626) carries signals and maybe implemented using wire or cable, fiber optics, a phone line, acellular phone link, a radio frequency (RF) link, and/or othercommunication channels.

In this document, the terms “computer program medium,” “computer usablemedium,” and “computer readable medium” are used to generally refer tomedia such as main memory (610) and secondary memory (612), removablestorage drive (616), and a hard disk installed in hard disk drive oralternative persistent storage device (614).

Computer programs (also called computer control logic) are stored inmain memory (610) and/or secondary memory (612). Computer programs mayalso be received via a communication interface (624). Such computerprograms, when run, enable the computer system to perform the featuresof the present invention as discussed herein. In particular, thecomputer programs, when run, enable the processor (602) to perform thefeatures of the computer system. Accordingly, such computer programsrepresent controllers of the computer system.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed.

Many modifications and variations will be apparent to those of ordinaryskill in the art without departing from the scope and spirit of theinvention. The embodiment was chosen and described in order to bestexplain the principles of the invention and the practical application,and to enable others of ordinary skill in the art to understand theinvention for various embodiments with various modifications as aresuited to the particular use contemplated.

It will be appreciated that, although specific embodiments of theinvention have been described herein for purposes of illustration,various modifications may be made without departing from the spirit andscope of the invention. Specifically, the autonomous detection andselection notification for a mobile device is not limited to a mobilephone. Accordingly, the scope of protection of this invention is limitedonly by the following claims and their equivalents.

What is claimed is:
 1. A computer program product comprising a computerreadable storage device having program code embodied therewith, theprogram code executable by a processor to: capture a first and secondset of data associated with a data file, wherein the first set comprisesdata corresponding to a first viewed portion of the data file by a firstentity, and the second set comprises data corresponding to a secondviewed portion of the data file by a second entity; form a firstnavigation profile from the first set of data and a second navigationprofile from the second set of data; store and aggregate the formednavigation profiles; identify a combined viewing pattern from theaggregation; recommend a portion of the data file for a second viewingbased on the combined viewing pattern; display the recommended portionof the data file on a visual display; and the visual display to supportgestural navigation within at least two categories of navigation profilemetadata, wherein the gestural navigation supports expansion of therecommended portion of the data file and comprises navigating between afirst graphical representation of: a first category with respect to asecond category; and a second graphical representation of a thirdcategory with respect to the second category.
 2. The computer programproduct of claim 1, further comprising program code to select a subsetof the data file for viewing in response to the aggregation of thenavigation profiles.
 3. The computer program product of claim 1, furthercomprising program code to graphically represent the aggregation ofnavigation profiles, including code to capture a viewing frequency ofdata within the data file based upon the aggregation of captured viewedportions of the data file.
 4. The computer program product of claim 3,further comprising program code to respond to a gestural selection of atleast one subset within the data file from the graphical representation.5. The computer program product of claim 4, wherein the gesturalselection is selected from the group consisting of: physical contactbetween the user and the visual display, and physical contact between astylus and the visual display.
 6. The computer program product of claim1, further comprising program code to maintain a view profile of one ormore viewing preferences based on a view characteristic, and recommendat least one portion of the data file for viewing based on a commoncharacteristic.
 7. The computer program product of claim 1, wherein thegestural navigation further comprises program code to select separateportions within the recommended portion of the data file.
 8. Thecomputer program product of claim 1, wherein the gestural navigationfurther comprises program code to select separate attributes associatedwith the recommended portion of the data file.
 9. The computer programproduct of claim 1, wherein the data file is a video file and thenavigation profile includes data selected from the group consisting of:a skipped portion, a fast-forwarded portion, a re-played portion, avolume increase, a volume decrease, and combinations thereof.
 10. Thecomputer program product of claim 1, wherein the formed first navigationprofile comprises a viewing pattern of viewed portions of the first setof data and at least one portion omitted from viewing, and the formedsecond navigation profile comprises a pattern of viewed portions of thesecond set of data and at least one portion omitted from viewing.
 11. Asystem comprising: a processing unit in communication with memory; afunctional unit in communication with the processing unit, thefunctional unit having tools to support file navigation, the toolscomprising: a profile manager to capture a first and second set of dataassociated with a data file, wherein the first set comprises datacorresponding to a first viewed portion of a data file by a firstentity, and the second set comprises data corresponding to a secondviewed portion of the data file by a second entity; the profile managerto form a first navigation profile from the first set and a secondnavigation profile from the second set; a storage manager incommunication with the profile manager, the storage manager to store andaggregate the formed navigation profiles; the profile manager toidentify a combined view pattern from the aggregation; a recommendationmanager in communication with the storage manager, the recommendationmanager to recommend a portion of the data file for a second viewingbased on the combined viewing pattern; a graphics manager to display therecommended portion of the data file on a visual display, the visualdisplay to support gestural navigation within at least two categories ofnavigation profile metadata, wherein the gestural navigation supportsexpansion of the recommended portion of the data file and comprisesnavigating between a first graphical representation of: a first categorywith respect to a second category; and a second graphical representationof a third category with respect to the second category.
 12. The systemof claim 11, further comprising the recommendation manager to select asubset of the file for viewing in response to the aggregation of thenavigation profiles.
 13. The system of claim 11, further comprising thegraphics manager to graphically represent the aggregation of navigationprofiles, including the graphics manager to capture a viewing frequencyof data within the data file based upon the aggregation of capturedviewed portions of the data file.
 14. The system of claim 13, furthercomprising the graphics manager to respond to a gestural selection of atleast one subset within the data file from the graphical representation.15. The system of claim 14, wherein the gestural selection is selectedfrom the group consisting of: physical contact between the user and thevisual display, and physical contact between a stylus and the visualdisplay.
 16. The system of claim 11, further comprising the profilemanager to maintain a view profile of one or more viewing preferencesbased on a view characteristic, and to recommend at least one portion ofthe data file for viewing based on a common characteristic.
 17. Thesystem of claim 11, wherein the data file is a video file and thenavigation profile includes data selected from the group consisting of:a skipped portion, a fast-forwarded portion, a re-played portion, avolume increase, a volume decrease, and combinations thereof.
 18. Thesystem of claim 11, wherein the gestural navigation further comprisesselection of separate portions of the recommended portion of the datafile.
 19. The system of claim 11, wherein the gestural navigationfurther comprises selection of separate attributes associated with therecommended portion of the data file.
 20. The system of claim 11,wherein the formed first navigation profile comprises a viewing patternof viewed portions of the first set of data and at least one portionomitted from viewing, and the formed second navigation profile comprisesa pattern of viewed portions of the second set of data and at least oneportion omitted from viewing.